function DatosSpriteMov(posYImgs, ancho, alto, numImgs) {
	this.posYImgs = posYImgs;
	this.ancho = ancho;
	this.alto = alto;
	this.numImgs = numImgs;
} 

function Sprite(archivoImg, datosSpriteMovDer, datosSpriteMovIzq, datosSpriteMovVertDer, datosSpriteMovVertIzq, velocidadHoriz, velocidadVert) {
	this.contextoMovimiento = canvasMovimiento.getContext("2d");
	this.imagen = new Image();
	this.isReady = false;
	var that = this;
	this.imagen.onload = function(){ 
		that.isReady = true;
	}
	this.imagen.src = archivoImg;
	this.datosSpriteMovDer = datosSpriteMovDer;
	this.datosSpriteMovIzq = datosSpriteMovIzq;
	this.datosSpriteMovVertDer = datosSpriteMovVertDer;
	this.datosSpriteMovVertIzq = datosSpriteMovVertIzq;
	this.velocidadHoriz = velocidadHoriz;
	this.velocidadVert = velocidadVert;
	
	this.setPosicion = function(punto) {
		this.posX = punto.x;
		this.posY = punto.y;
	}
	
	this.setPosicion(pantalla.getPosicionInicial());
	this.paso = 0;
	this.incrementoFrame = 1;
	this.frame = 0;
	this.datosSprite = this.datosSpriteMovDer;	
		
	this.actualizarEstado = function() {
		var posXNueva;
		var PosYNueva;
		var hayCambio = false;
		var teclaValida = true;
		var tipo;
		switch (teclaPulsada) {
			case IZQUIERDA:
				posXNueva = this.posX - this.velocidadHoriz;
				var res = pantalla.moverA(this.posX, this.posY, posXNueva, this.posY);
				if (res == MOVER_OK || res > 0) {
					if (this.datosSprite != this.datosSpriteMovIzq) {
						this.datosSprite = this.datosSpriteMovIzq;
						hayCambio = true;
					} 
					if (res == MOVER_OK)
						this.posX = posXNueva;
					else
						this.posX = res;
				}	
				else
					teclaValida = false;					
			break;
			case DERECHA:
				posXNueva = this.posX + this.velocidadHoriz;
				var res = pantalla.moverA(this.posX, this.posY, posXNueva, this.posY);
				if (res == MOVER_OK || res > 0) {
					if (this.datosSprite != this.datosSpriteMovDer) {
						this.datosSprite = this.datosSpriteMovDer;
						hayCambio = true;
					} 
					if (res == MOVER_OK)
						this.posX = posXNueva;
					else
						this.posX = res;
				}
				else
					teclaValida = false;						
			break;
			case ARRIBA:
				posYNueva = this.posY - this.velocidadVert;
				var res = pantalla.moverA(this.posX, this.posY, this.posX, posYNueva);
				if (res == MOVER_OK || res > 0) {
					tipo = pantalla.getTipoSegmento(this.posX, posYNueva);
					if (tipo == VERTICAL_DER && this.datosSprite != this.datosSpriteMovVertDer) {							
						this.datosSprite = this.datosSpriteMovVertDer;
						hayCambio = true;
					} 
					else if (tipo == VERTICAL_IZQ && this.datosSprite != this.datosSpriteMovVertIzq) {							
						this.datosSprite = this.datosSpriteMovVertIzq;
						hayCambio = true;
					} 
					if (res == MOVER_OK)
						this.posY = posYNueva;
					else
						this.posY = res;
				}						
				else
					teclaValida = false;
			break;
			case ABAJO:
				posYNueva = this.posY + this.velocidadVert;
				var res = pantalla.moverA(this.posX, this.posY, this.posX, posYNueva);
				if (res == MOVER_OK || res > 0) {
					tipo = pantalla.getTipoSegmento(this.posX, posYNueva);
					if (tipo == VERTICAL_DER && this.datosSprite != this.datosSpriteMovVertDer) {							
						this.datosSprite = this.datosSpriteMovVertDer;
						hayCambio = true;
					} 
					else if (tipo == VERTICAL_IZQ && this.datosSprite != this.datosSpriteMovVertIzq) {							
						this.datosSprite = this.datosSpriteMovVertIzq;
						hayCambio = true;
					} 
					if (res == MOVER_OK)
						this.posY = posYNueva;
					else
						this.posY = res;
				}						
				else
					teclaValida = false;
			break;	
			default:
				teclaValida = false;
			break;	
		}
		if (hayCambio) {
			this.paso = 0;
			this.incrementoFrame = 1;
			this.frame = 0;
		}
		else if (teclaValida) {
			this.paso = (this.paso + 1)% 3;
			if (this.paso == 0)
				this.frame = this.frame + this.incrementoFrame;
			if (this.frame == this.datosSprite.numImgs-1)
				this.incrementoFrame = -1;
			else if (this.frame < 1) 
				this.incrementoFrame = 1;
		}
		//console.log(this.posX);				
	} // Fin actualizarEstado
	
	this.drawImage = function() {
		if(this.isReady){
	    	this.contextoMovimiento.drawImage(this.imagen, this.frame * this.datosSprite.ancho, 
	    		this.datosSprite.posYImgs, this.datosSprite.ancho, 
	    		this.datosSprite.alto, this.posX, this.posY, 
	    		this.datosSprite.ancho, this.datosSprite.alto);
	    		console.log("ss");
		}
		
	}
	
}

